home *** CD-ROM | disk | FTP | other *** search
- /*
- * Visual Basic Callback Server Source
- *
- * (c) Copyright Microsoft Corp. 1995 All Rights Reserved
- */
-
- #include "hostenv.h"
- #include "callback.h"
- #include "svrmain.h"
-
- #define CB_DO_IMPLEMENT
- #define CB_DO_VBHEADER
- #include "CBackDat.h"
- #undef CB_DO_IMPLEMENT
- #undef CB_DO_VBHEADER
-
- extern "C" long WINAPI AddressOf(long AnyThing)
- {
- return AnyThing;
- }
-
- //CCallBack Implementation//
- CCallBack::CCallBack(void)
- {
- m_pVBClass = NULL;
- m_bContained = FALSE;
- }
-
- CCallBack::~CCallBack(void)
- {
- if (m_pVBClass && !m_bContained)
- m_pVBClass->Release();
- }
-
- STDMETHODIMP
- CCallBack::putref_VBHandler(THIS_ IDispatch FAR* VBClass)
- {
- if (m_pVBClass && !m_bContained)
- m_pVBClass->Release();
- if (VBClass)
- {
- m_bContained = FALSE;
- m_pVBClass = VBClass;
- m_pVBClass->AddRef();
- }
- return NOERROR;
- }
-
- STDMETHODIMP
- CCallBack::get_CallBackType(THIS_ VBCallBackType FAR* retVal)
- {
- *retVal = m_CBType;
- return NOERROR;
- }
-
- STDMETHODIMP
- CCallBack::get_IsPersistent(THIS_ VARIANT_BOOL FAR* retVal)
- {
- *retVal = m_IsPersistent;
- return NOERROR;
- }
-